home *** CD-ROM | disk | FTP | other *** search
- ============================================================================
-
- Fill V1.2. Smart Multi-file Mover.
- Copyright ©1993-1994 Barry Wills. All rights reserved.
-
-
- ============================================================================
-
-
- DISTRIBUTION AND USE.
- ~~~~~~~~~~~~~~~~~~~~~
- This product is Giftware, and may be freely distributed and/or used under
- the following restrictions:
-
- 1. This product may be modified for private use only. Modifications may
- not be distributed in any fashion.
- 2. This product may not be distributed for profit. A nominal copying fee
- is authorized (for cost of materials and shipping and handling
- comparable to that charged by Fred Fish.) Explicit permission to
- distribute this archive is hereby granted to Fred Fish.
- 3. Shareware, Giftware, Freeware, and Public Domain products are free to
- include this original unmodified distribution archive. Honorable
- mention of the author and product would be appreciated. Distribution
- of this product in a commercial package without written permission
- from the author is strictly forbidden.
- 4. This product may not be used for malicious intent.
-
- If you honour the Giftware concept, please consider sending some money
- (like $1 in cash) to Fred Fish for the awesome support he has provided us
- all these years.
-
-
-
- DISCLAIMER.
- ~~~~~~~~~~
- This product is provided without any warranty, express or implied. The user
- of this product assumes full responsibility for any damage resulting from
- the use and/or misuse of this product, ESPECIALLY if you make your own
- modifications. :-)
-
-
- CONTENTS.
- ~~~~~~~~
- This archive should contain the following files:
-
- .Product-Info - KingFisher record for this archive.
- bin/cf - Executable, creates a file of any given size.
- bin/Fill - Executable, V1.2.
- docs/Fill.doc - Copyright notice and product information (this file).
- source/cf.e - Dummy-file creation utility source.
- source/Fill.e - Fill program source.
- pmodules/ - Directory containing the following EPP source modules:
- commandLineArgs.e, skipNonWhite.e, skipWhite.e,
- upperChar.e.
-
-
- ============================================================================
-
-
- REQUIREMENTS.
- ~~~~~~~~~~~~
- · An Amiga with the minimum configuration. Should operate under KickStart
- V1.3 or higher.
-
- · Requires arp.library V39+.
-
- · You will need EPP (an E Preprocessor), Wouter van Oortmerssen's Amiga E,
- and at least 1Meg of RAM if you want to compile the sources.
-
-
-
- WHAT IS IT?
- ~~~~~~~~~~
- FILL copies or moves all files from the directory specified on the command-
- line to a destination (normally a floppy drive) in such a fashion as to waste
- as little storage as possible on the destination. Fill supports wildcard
- pattern matching of filenames.
-
-
-
- WHY IS IT?
- ~~~~~~~~~
- I was suitably impressed by a program I saw on IBM/clone machines (can you
- believe it?) called FILL. I hunted for an equivalent for Amiga (or the
- source so I could port it). But it was unavailable, so I wrote it.
-
- This was not just an exercise. I need this program. I often download a lot
- of files to my hard drive and then peruse through them and classify them
- later. But sometimes I can't get to them until MUCH later (school gets in
- the way, etc.) In the meantime if I need space on my drive then I have to
- manually copy these files to floppy for temporary storage.
-
- Both time and floppy diskettes are at a premium. Manually copying takes a
- lot of time, and diskettes aren't a dime a dozen ($6 - $10 a dozen,
- actually.) That's where FILL comes to the rescue.
-
-
-
- INSTALLATION.
- ~~~~~~~~~~~~
- 1. Place Fill somewhere in your path for convenience.
- 2. Copy arp.library from the Fill archive subdirectory for your
- corresponding OS version (Libs/OS13 for AmigaDOS v1.3, Libs/OS20 for
- AmigaDOS v2.0).
-
-
-
- USAGE.
- ~~~~~
- 1. Typing FILL without any parameters (or with invalid parameters) will
- produce the following message:
-
- Usage: Fill [<options>] <source> <dest>
- <source> Any valid DOS "dev:dir", ARP wildcards supported
- <dest> Any valid DOS "dev:dir"
- [<options>]
- -c Copy files only, don't delete source (default MOVE FILES)
- -e## Error margin, add blocks to storage estimate (1-20; default 0)
- -n No DOS overhead considerations (use on MS-DOS floppies)
- -p Don't transfer protection bits (use standard rwed)
- -x Don't clone protection bits, date, and time
-
- 2. Typing "Fill * DF0:" will MOVE all files in the current directory to the
- floppy in DF0:. The source directory may be any valid DOS file specification
- (i.e., any [dev:][path/]filepattern.) Arp wildcards are supported, so if you
- type "Fill temp/*.l* DF0:" then all files in the temp directory that have a
- ".lzh", ".lha", ".l#?" extension will be moved to the floppy in DF0:.
-
- 3. All files moved or copied retain their protection bits and datestamps by
- default. If the diskette in DF0: becomes full the number of unused bytes is
- displayed for your edification and you will be prompted to insert the next
- diskette. Entering "Q" or "q" at the prompt will abort the program. Typing
- Ctrl-C at any time will abort the copy/move and remove from destination the
- partially copied file in progress at the time of interrupt.
-
- 4. Program mode is MOVE by default. The option '-c' disables deletion of
- files from the source medium. If an error occurs while writing to
- destination, the destination file is removed (but the source file is not), a
- message is displayed and a smaller file will be attempted.
-
- 5. Error margin is 0 blocks by default. This option was supplied in the
- event that storage requirements are incorrectly calculated by the program.
- (***** DOES ANYBODY USE THIS??? *****)
-
- 6. Since MS-DOS reserves a fixed number of blocks for the file system, so it
- doesn't require any fancy calculations, i.e., the "overhead" is predetermined.
- The "-n" option is provided to allow you to completely fill an MS-DOS floppy.
-
- 7. To assign the default protection bits to destination files, supply the
- "-p" option on the command-line.
-
- 8. To assign the current date and time stamp to destination files, supply
- the "-x" option on the command-line.
-
-
-
- OTHER CONSIDERATIONS.
- ~~~~~~~~~~~~~~~~~~~~
- FILL does not check for files on destination that have the same name, they
- are simply over-written. For this reason, and the probability of file
- fragmentation, using partially-full disks with this program is discouraged.
-
- The storage requirements formula used in this program is not sanctioned (as
- far as I am aware) by anyone but me. I formulated it by experimentation
- with DOS. Therefore, it is possible that the calculations may occasionally
- be inaccurate. If this occurs I would appreciate a bug report and as much
- information about the circumstances as possible. Redirecting the output of
- the DOS List command to a text file(s) would be very helpful, as would error
- messages generated by DOS and the program.
-
- Since FILL was written with 880k OFS floppies in mind as the standard
- destination device, the storage requirements calculation may be inaccurate
- if you are trying to fill hard/floptical drives or high density drives. I
- have no need (and no means) to test other media types at this time. If this
- causes you severe heartburn please let me know and I'll consider researching
- it. I intentionally did not play with FFS since I don't use it on my
- floppies. FILL may act a little flakey if used with FFS floppies. I don't
- know for sure.
-
-
- ============================================================================
-
-
- LIMITATIONS.
- ~~~~~~~~~~~
- · Doesn't do subdirectories.
-
- · Any other features not included that you think would be worthwhile...
-
-
-
- TO DO.
- ~~~~~
- · Optimized copying. Comparing combined size of two or three smaller
- files instead of just using the largest file that will fit. (Not sure
- if this is feasible.)
-
- · Allow specification of an alternate destination drive (for those of us
- with more than one floppy.)
-
- · There was one request for sub-directories. What should one do with a
- a sub-directory???
-
-
-
- HISTORY.
- ~~~~~~~
- V0.10b - First release, May 1993.
- ~~~~~~
- 1. Locks destination. Doesn't care if it's a floppy.
- 2. Locks source. Source is always current directory.
- 3. Examines contents of source directory, stores filenames and sizes in
- a list in descending order.
- 4. Checks free space on destination. Gets from list largest file that
- will fit on destination. Moves file to destination. Continues
- until list is emptied or files remaining in list won't fit on an
- empty volume.
- 5. Prompts for disk-change when volume becomes full. Allows user
- interruption.
- 6. Displays number of unused bytes on a finished volume.
- 7. Supports options:
- -b## Copy buffer size (1-100k; default 20)
- -c Copy only. Don't move files. (default MOVE FILES)
- -e## Error Margin for storage estimate (1-20 blocks; default 0)
- 8. Preserves file attributes.
- 9. Recovers from full disk error (untested.)
-
- V0.11b - Released (oops, I don't remember).
- ~~~~~~
- 1. Corrected erroneous check for file too big to fit on empty volume.
- V0.10b would keep asking for another disk, even though a file would
- not fit on an empty volume. User had to enter 'Q' or 'q' to quit at
- the prompt.
- 2. Corrected to get the destination infodata before displaying free
- space when exiting the program. Previously, the free space shown
- upon exiting was the free space on the destination BEFORE the last
- file was copied/moved. (oops)
-
- V0.12b - Released 22 May 93.
- ~~~~~~
- 1. Added Ctrl-C interrupt capability.
-
- V1.0 - Released 13 Jun 93.
- ~~~~
- 1. Removed from beta status.
- 2. New command-line argument for source dev:directory.
- 3. Now using arp.library to select filenames by pattern.
-
- V1.1 - Released 24 Jul 93.
- ~~~~
- 1. Added -n switch for "no overhead consideration", intended for use
- with MS-DOS floppies.
- 2. Cosmetic adjustment of status messages.
- 3. If a destination directory is specified, the file name was prepended
- with the directory name instead of being placed in the destination
- directory.
-
- V1.2 - Released 13 Feb 94.
- ~~~~
- 1. Added -x (NOCLONE) switch, clone datestamp by default.
- 2. Added -p (NOPRO) switch, preserve protection bits by default.
- 3. Condensed source format a little. Optimized a few statements.
-
-
- ============================================================================
-
-
- MISCELLANEOUS.
- ~~~~~~~~~~~~~
- This product was developed and tested on a Commodore Amiga 500 with the
- following configuration:
-
- KickStart V34, WorkBench V1.3, ©Commodore-Amiga, Inc.
- KickStart V37, WorkBench V2.1, ©Commodore-Amiga, Inc.
- Amiga E V2.1, ©Wouter van Oortmerssen
- ARP V39 and V40, Amiga Resource Project, ©ARP Authors.
-
- DataFlyer 500 SCSI controller
- Quantum 52M HD
- Dual 880K floppy drive
- 1M 16-bit Chip RAM
- CSA Derringer 030 accellerator:
- 68030 CPU @25MHz
- 68881 FPU @27MHz
- 4M 32-bit Fast RAM
-
-
- ============================================================================
-
-
- CREDITS.
- ~~~~~~~
- Special thanks go to:
-
- · Wouter van Oortmerssen for making Amiga E awesome and available!
-
- · Arp Authors, those Amiga monoliths, saviors of the dying Amiga OS
- v1.3, most (all?) of whom are still lurking somewhere!
-
- ============================================================================
-
-
- CONTACTING THE AUTHOR.
- ~~~~~~~~~~~~~~~~~~~~~
- I can be reached by the following means:
-
- Internet: el269@cleveland.freenet.edu
-
- USnail: Barry Wills
- 5528D Pryor Dr.
- Scott AFB, IL 62225 (USA)
- (618)-744-1096
-
- I wrote this for my own use, but I hope you get as much enjoyment out of it
- as I do. I am very interested in feedback!
-
-
- ============================================================================
-